Distributed Programming via Safe Closure Passing

نویسندگان

  • Philipp Haller
  • Heather Miller
چکیده

Programming systems incorporating aspects of functional programming, e.g., higher-order functions, are becoming increasingly popular for large-scale distributed programming. New frameworks such as Apache Spark leverage functional techniques to provide high-level, declarative APIs for in-memory data analytics, often outperforming traditional “big data” frameworks like Hadoop MapReduce. However, widely-used programming models remain rather ad-hoc; aspects such as implementation trade-offs, static typing, and semantics are not yet well-understood. We present a new asynchronous programming model that has at its core several principles facilitating functional processing of distributed data. The emphasis of our model is on simplicity, performance, and expressiveness. The primary means of communication is by passing functions (closures) to distributed, immutable data. To ensure safe and efficient distribution of closures, our model leverages both syntactic and typebased restrictions. We report on a prototype implementation in Scala. Finally, we present preliminary experimental results evaluating the performance impact of a static, type-based optimization of serialization.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Type-Based Foundation for Closure-Passing in the Age of Concurrency and Distribution

Functional programming (FP) is regularly touted as the way forward for bringing parallel, concurrent, and distributed programming to the mainstream. However, despite this established viewpoint, reliably distributing function closures over a network, or using them in concurrent environments nonetheless remains a challenge across FP and OO languages. Our work on Spores takes a step towards more p...

متن کامل

A Linear Decomposition of Multiparty Sessions for Safe Distributed Programming

Multiparty Session Types (MPST) is a typing discipline for message-passing distributed processes that can ensure properties such as absence of communication errors and deadlocks, and protocol conformance. Can MPST provide a theoretical foundation for concurrent and distributed programming in “mainstream” languages? We address this problem by (1) developing the first encoding of a full-fledged m...

متن کامل

Spores: A Type-Based Foundation for Closures in the Age of Concurrency and Distribution

Functional programming (FP) is regularly touted as the way forward for bringing parallel, concurrent, and distributed programming to the mainstream. The popularity of the rationale behind this viewpoint has even led to a number of object-oriented (OO) programming languages outside the Smalltalk tradition adopting functional features such as lambdas and thereby function closures. However, despit...

متن کامل

Compiling High Performance Fortran to Message Passing

ADAPTOR is a public domain High Performance Fortran compilation system that provides the comfortable data parallel programming paradigm on parallel machines with distributed memory. Therefore, the data parallel programs with their global view of data are translated to programs that work on the local parts of the distributed data and exchange the other needed data via message passing. This paper...

متن کامل

Parallel Distributed Programming with Haskell + PVM

This paper presents a methodology to transform a pure functional speciication into a distributed message-passing program via equa-tional reasoning. The methodology uses a formal model of a message passing system. This abstract system can be implemented using PVM or MPI, and thus executable programs produced.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015